package myjava.i_collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/**
 * @Auther: cty
 * @Date: 2019/11/9 下午8:05
 * @Description: 测试Collection接口中的方法
 * @version: 1.0
 */
public class B_TestCollection {
    public static void main(String[] args) {
        test02();
    }

    public static void test01(){  //测试基础方法
        Collection<String> c = new ArrayList<String>();

        System.out.println(c.size());
        System.out.println(c.isEmpty());

        c.add("陈老大");  //为容器添加一个元素
        c.add("陈老二");
        System.out.println(c);
        System.out.println(c.size());

        System.out.println(c.contains("陈老二"));  //判断容器中是否包含元素
        System.out.println(c.contains("陈老三"));

        c.remove("陈老二");  //移除容器中的元素（注意是丢掉元素的索引指针，但元素还在）
        System.out.println(c);
        System.out.println(c.size());

        c.clear();  //移除容器中的所有的元素
        System.out.println(c.size());
    }

    public static void test02(){  //测试集合方法
        Collection<String> list01 = new ArrayList<>();
        list01.add("aa");
        list01.add("bb");
        list01.add("cc");

        List<String> list02 = new ArrayList<>();
        list02.add("aa");
        list02.add("dd");
        list02.add("ee");

        System.out.println("list01:"+list01);

        System.out.println(list01.containsAll(list02));  //false  判断容器1是否包含容器2

//        list01.addAll(list02);  //[aa, bb, cc, aa, dd, ee]  两个容器的“并集”
//        System.out.println("list01:"+list01);

//        list01.removeAll(list02);  //[bb, cc] 减去两个容器的交集
//        System.out.println(list01);

        list01.retainAll(list02);  //[aa]  两个容器的交集
        System.out.println(list01);


    }
}
